package com.wlyuan.open.scanner.domain.consignee;

import com.alibaba.fastjson.annotation.JSONField;
import com.wlyuan.open.scanner.domain.BaseDomain;
import com.wlyuan.open.scanner.domain.address.Address;
import com.wlyuan.open.scanner.utils.enums.SourceInvalidEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.hibernate.validator.constraints.Range;

import java.util.List;

/**
 * @author lijing
 * @description
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ToString(callSuper = true)
public class Consignee extends BaseDomain {

    @ApiModelProperty(value = "收货方名称")
    private String name;

    @ApiModelProperty(value = "联系人")
    private String contactName;

    @ApiModelProperty(value = "联系电话")
    private String contactMobile;

    @ApiModelProperty("客户名称不能为空")
    private String customerName;

    @ApiModelProperty(value = "地址列表")
    private List<Address> addressList;


    private Long customerId;

    private Long id;

    @ApiModelProperty(value = "状态")
    private SourceInvalidEnum enduserInvalid;

    @ApiModelProperty(value = "邮箱")
    @JSONField(alternateNames = "email")
    private String contactEmail;

    @Range(min = 1, max = 11, message = "行业不存在")
    @ApiModelProperty(value = "行业")
    private Integer industry;

    @ApiModelProperty(value = "公司网站")
    private String url;

    @ApiModelProperty(value = "公司简称")
    private String abbr;

    @ApiModelProperty(value = "英文名")
    private String englishName;

    @ApiModelProperty(value = "英文名简称")
    private String englishAbbr;

    @ApiModelProperty(value = "logo")
    private String logo;

    @ApiModelProperty(value = "传真")
    private String fax;

    @ApiModelProperty(value = "邮编")
    private String zipcode;

    @ApiModelProperty(value = "简介")
    private String profile;

    @ApiModelProperty(value = "地址")
    private String address;

    @ApiModelProperty(value = "开户行名称")
    private String bankName;

    @ApiModelProperty(value = "银行账号")
    private String bankAccount;

    @ApiModelProperty(value = "企业法人")
    private String corporation;

    @ApiModelProperty(value = "营业执照")
    private String businessLicenseUrl;

    @ApiModelProperty(value = "微信公众号")
    private String wechatOfficialNo;

    private Long createBy;
    private Long updateBy;

    private ConsigneeConfig consigneeConfig;

}
